package org.wdcode.back.tag;

import org.wdcode.back.constants.BackTagConstants;
import org.wdcode.back.tag.button.SubmitTag;
import org.wdcode.back.tag.ui.LabelTag;
import org.wdcode.back.tag.ui.PasswordTag;
import org.wdcode.back.tag.ui.SelectTag;
import org.wdcode.back.tag.ui.TextFieldTag;
import org.wdcode.common.util.CommonUtil;

/**
 * 控制显示标签
 * @author WD
 * @since JDK6
 * @version 1.0 2010-03-24
 */
public final class TypeTag extends BaseUITag {
	// 序列化ID
	private static final long	serialVersionUID	= 5401432809238277788L;

	// 列表使用CSS
	private String				cssSelect;
	// 文本框使用CSS
	private String				cssText;
	// 按钮使用CSS
	private String				cssSubmit;

	/**
	 * 获得列表使用CSS
	 * @return 列表使用CSS
	 */
	public String getCssSelect() {
		return cssSelect;
	}

	/**
	 * 设置列表使用CSS
	 * @param cssSelect 列表使用CSS
	 */
	public void setCssSelect(String cssSelect) {
		this.cssSelect = cssSelect;
	}

	/**
	 * 获得文本框使用CSS
	 * @return 文本框使用CSS
	 */
	public String getCssText() {
		return cssText;
	}

	/**
	 * 设置文本框使用CSS
	 * @param cssText 文本框使用CSS
	 */
	public void setCssText(String cssText) {
		this.cssText = cssText;
	}

	/**
	 * 获得按钮使用CSS
	 * @return 按钮使用CSS
	 */
	public String getCssSubmit() {
		return cssSubmit;
	}

	/**
	 * 设置按钮使用CSS
	 * @param cssSubmit 按钮使用CSS
	 */
	public void setCssSubmit(String cssSubmit) {
		this.cssSubmit = cssSubmit;
	}

	/**
	 * 初始化
	 */
	@Override
	protected void init() {
		// 设置标签为空
		tag = null;
		// 获得类型
		String type = getStack().findString(BackTagConstants.GET_TYPE);
		// 记录使用的CSS
		int css = BackTagConstants.TYPE_CSS_SELECT;
		// 判断是什么类型的标签
		if (BackTagConstants.SELECT.equals(type)) {
			tag = new SelectTag();
		} else if (BackTagConstants.TYPE_TEXTFIELD.equals(type)) {
			tag = new TextFieldTag();
			css = BackTagConstants.TYPE_CSS_TEXT;
		} else if (BackTagConstants.TYPE_LABEL.equals(type)) {
			tag = new LabelTag();
		} else if (BackTagConstants.TYPE_PASSWORD.equals(type)) {
			tag = new PasswordTag();
			css = BackTagConstants.TYPE_CSS_TEXT;
		} else if (BackTagConstants.BUTTON_SUBMIT.equals(type)) {
			tag = new SubmitTag();
			css = BackTagConstants.TYPE_CSS_SUBMIT;
		}

		// 设置CSS样式
		if (!CommonUtil.isEmpty(tag)) {
			if (css == BackTagConstants.TYPE_CSS_SELECT) {
				tag.setCssClass(cssSelect);
			} else if (css == BackTagConstants.TYPE_CSS_TEXT) {
				tag.setCssClass(cssText);
			} else if (css == BackTagConstants.TYPE_CSS_SUBMIT) {
				tag.setCssClass(cssSubmit);
			}
		}
	}
}